#include "../include/dialogue.h"
#include <iostream>
#include <fstream>


dialogue::dialogue()
{


    Arial.LoadFromFile("arial.ttf");
    ecran.LoadFromFile("boite.png");

    ecrant_dialogue.SetImage(ecran);
    ecrant_dialogue.SetCenter(0,0);
    ecrant_dialogue.SetPosition(200,200);

    for(int x=0;x<30;x++)
    {Texte_a_afficher[x].SetText(""); Texte_a_afficher[x].SetFont(Arial); }//rappel le "" équiveau à NULL (pour moi);






}

dialogue::~dialogue()
{
    //dtor
}


void dialogue::setdialogue(const char* name_fichier)
{


    std::string fuck = " ";

    // on charger le dialogue dans un tableau de string....
Texte.clear(); // on vide le tableau précédent.


  std::ifstream flux(name_fichier);

  while(flux) // on charge le nouveau dialogue.
  {
getline(flux,fuck);
Texte.push_back(fuck);
  }

 std::cout << Texte.size();
 //*nb = 9;

}

void dialogue::preparation(unsigned int numero)
{
 unsigned int limite = 20; // limite privisoire! sa c'est le nombre charactaire que contient une ligne
  const int line = 6; // (on peut afficher 6 ligne)
  // Test a faire.



for (int x = 0; x < 30; x++)
Texte_a_afficher[x].SetText("");


/*//
   if( Texte[numero].size() <= limite )
   // si le nombre de characters d'une ligne est plus petit ou égale a la limite.
   {
     Texte_a_afficher[0].SetText(Texte[numero]);
   }
else // sinon elle est plus grand donc on va la segmenter
{
    int resultat = ((Texte[numero].size()/limite)+1);

    // on regarde de combient il faut la segmenté
    //(la division d'un int par un int enlevera la parti décimal.(donc on rajoute +1))

    if (resultat <= line)  // si le resultat rentre dans 1 affichage.
    {
            for(int x=1; x <= line; x++)
    {
       if( Texte[numero][limite*x] == ' ' )
       Texte[numero][limite*x] = '\n';

       else
       {
           for(unsigned int z=1; z <= limite-1; z++)
           {
               if(Texte[numero][(limite*x)-z] == ' ' )
               {
                   Texte[numero][limite*x-z] = '\n';
                   z = limite;
               }
           } // Z = limite
       }

    }

    }

}
//*/

   Texte_a_afficher[0].SetCenter(0,0);
   Texte_a_afficher[0].SetPosition(ecrant_dialogue.GetPosition().x+1,ecrant_dialogue.GetPosition().y+1);
     Texte_a_afficher[0].SetText("   ");
std::cout << Texte.size();
//std::cout << *nb;



// ce vector de string bug dés que je l'utilise... what the fuck?

}
